//
//  monster.h
//  
//
//  Created by Thomas Maillard on 28/03/13.
//
//

#ifndef MONSTER_H_
#define MONSTER_H_

#include "../include/bomb.h"
#include "../include/monster.h"
#include "../include/game.h"
#include "../include/map.h"
#include "../include/misc.h"
#include "../include/level.h"

typedef struct s_monster * t_monster;
extern t_monster monster_init();
extern void monster_display(t_monster player, SDL_Surface *screen);
extern void monster_from_map(t_monster player, t_map map);

extern int monster_move(t_monster player, t_map map);
/*
typedef struct s_monster * t_monster;



// Creates a new monster with a given number of available bombs
extern t_monster monster_init(int bomb_number, int life_number);
extern void monster_free(t_monster monster);



// Returns the current position of the monster
extern int monster_get_x(t_monster monster);
extern int monster_get_y(t_monster monster);

// Set the direction of the next move of the monster
extern void monster_set_current_way(t_monster monster, enum e_way way);

// Set, Increase, Decrease the number of bomb that monster can put
extern int monster_get_nb_bomb(t_monster monster);
extern void monster_inc_nb_bomb(t_monster monster);
extern void monster_dec_nb_bomb(t_monster monster);

// Set, Increase, Decrease the number of bomb that monster can put
extern int monster_get_nb_life(t_monster monster);
extern void monster_inc_nb_life(t_monster monster);
extern void monster_dec_nb_life(t_monster monster);

// Load the monster position from the map
extern int monster_from_map(t_monster monster, t_map map);


// Move the monster according to the current direction
extern int monster_move(t_monster monster, t_map map);

// Display the monster on the screen
extern void monster_display(t_monster monster, SDL_Surface *screen);
*/
/*int monster_timer(t_monster monster);

//Lifes gestion for monster
extern int monster_get_nb_life(t_monster monster);
extern void monster_inc_nb_life(t_monster monster);
extern void monster_dec_nb_life(t_monster monster);
*/



























/*
//monster struct
typedef struct list_monster *t_listmonster;

typedef struct s_monster *t_monster;


// Monster creation
extern t_listmonster monster_create(int x, int y);
extern t_listmonster monster_set(t_listmonster listmonster, int x, int y);
extern t_listmonster monster_next (t_listmonster listmonster);



// Monster kill
extern t_listmonster monster_kill(int x, int y, t_listmonster listmonster);


// Monster management
extern t_player monster_get_monster(t_listmonster listmonster);
extern void monster_set_listmonster(t_listmonster listmonster);
extern t_listmonster monster_get_listmonster();
extern int monster_on_cell(int x, int y);


// Display a monster on the screen
extern void monster_display(t_listmonster listmonster, SDL_Surface *screen);


// Monster Loading
extern void monster_load_monster(FILE *fichier);

// Monster saving
extern void monster_save(FILE * fichier);

*/
/*
typedef struct s_monster * t_monster;


// Creates a new monster with a given number of available bombs
//extern t_monster monster_init(int bomb_number, int monster_number);
extern void monster_free(t_monster monster);


// Returns the current position of the monster
extern int monster_get_x(t_monster monster);
extern int monster_get_y(t_monster monster);

// Set the direction of the next move of the monster
extern void monster_set_current_way(t_monster monster, enum e_way way);
extern enum e_way monster_get_current_way(t_monster monster);

// Load the monster position from the map
extern void monster_from_map(t_monster monster, t_map map);

// Move the monster according to the current direction
extern int monster_move(t_monster monster, t_map map);


// Display the monster on the screen
extern void monster_display(t_monster monster, SDL_Surface *screen);

//monster struct
typedef struct list_monster_ *t_listmonster;

typedef struct s_monster *t_monster;

extern t_listmonster monster_create(int x, int y);

// Display a monster on the screen
extern void monster_display(t_listmonster listmonster, SDL_Surface *screen);
*/
/*
//Création structure monster
typedef struct s_monster *t_monster;
typedef struct ListeMonster *list_monster;

//extern list monster_create (t_monster monster, t_map map);
extern void list_print_monster (list_monster l);
extern void print_list_element_monster (t_monster monster);
//extern void move_monster(liste_monster monster);
*/
#endif /* MONSTER_H_ */
